Make GtkNativeInterface private
authorMatthias Clasen <mclasen@redhat.com>
Thu, 13 Aug 2020 23:21:05 +0000 (19:21 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 14 Aug 2020 11:03:27 +0000 (07:03 -0400)
We are not sure yet if allowing out-of-tree
implementations of GtkNative are a good idea.

12 files changed:
docs/reference/gtk/gtk4-sections.txt
gtk/gtkdragicon.c
gtk/gtkmain.c
gtk/gtknative.c
gtk/gtknative.h
gtk/gtknativeprivate.h [new file with mode: 0644]
gtk/gtkpopover.c
gtk/gtktexthandle.c
gtk/gtktooltip.c
gtk/gtktooltipwindow.c
gtk/gtkwindow.c
gtk/inspector/inspect-button.c

index 5b23420dafce18fa0012d4cb537d92b8819505a5..7710b7020df715a1dd8fe3041752f487eb716bd2 100644 (file)
@@ -7108,7 +7108,6 @@ gtk_root_get_type
 <SECTION>
 <FILE>gtknative</FILE>
 GtkNative
-GtkNativeInterface
 gtk_native_get_for_surface
 gtk_native_get_surface
 gtk_native_get_renderer
index 1564042260ec68d32e7d6df2f9b8e8a2fa2141af..5099220d3f9c07108e0d23c81b9da896557f9ae4 100644 (file)
@@ -25,7 +25,7 @@
 #include "gtkcssstyleprivate.h"
 #include "gtkcssnodeprivate.h"
 #include "gtkcsstypesprivate.h"
-#include "gtknative.h"
+#include "gtknativeprivate.h"
 #include "gtkpicture.h"
 #include "gtkcssboxesimplprivate.h"
 #include "gtkcssnumbervalueprivate.h"
index b114de5bc09005c1623f0d4f1566482194376f8d..f59f1403cc1c9bdce55e99aa7900f8ab5eb2973c 100644 (file)
@@ -1227,7 +1227,7 @@ rewrite_event_for_grabs (GdkEvent *event)
     }
 
   event_widget = gtk_get_event_widget (event);
-  grab_widget = gtk_native_get_for_surface (grab_surface);
+  grab_widget = GTK_WIDGET (gtk_native_get_for_surface (grab_surface));
 
   if (grab_widget &&
       gtk_main_get_window_group (grab_widget) != gtk_main_get_window_group (event_widget))
@@ -1990,7 +1990,7 @@ gtk_get_event_widget (GdkEvent *event)
 
   surface = gdk_event_get_surface (event);
   if (surface && !gdk_surface_is_destroyed (surface))
-    return gtk_native_get_for_surface (surface);
+    return GTK_WIDGET (gtk_native_get_for_surface (surface));
 
   return NULL;
 }
index aa9c0ab9ee7372bae2d1da0cbba19c49a28c8b28..2fab467e92553d26e6ab672e18ea7880be8b4d59 100644 (file)
@@ -19,7 +19,7 @@
 
 #include "config.h"
 
-#include "gtknative.h"
+#include "gtknativeprivate.h"
 #include "gtkcssnodeprivate.h"
 #include "gtkwidgetprivate.h"
 #include "gdk/gdk-private.h"
@@ -146,7 +146,7 @@ gtk_native_check_resize (GtkNative *self)
  *
  * Returns: (transfer none): the #GtkNative that is associated with @surface
  */
-GtkWidget *
+GtkNative *
 gtk_native_get_for_surface (GdkSurface *surface)
 {
   GtkWidget *widget;
@@ -154,7 +154,7 @@ gtk_native_get_for_surface (GdkSurface *surface)
   widget = (GtkWidget *)gdk_surface_get_widget (surface);
 
   if (widget && GTK_IS_NATIVE (widget))
-    return widget;
+    return GTK_NATIVE (widget);
 
   return NULL;
 }
index ba596e0e9d6d7ce0bf0b48b3c968975ca1600a72..c9372a60e98617ee2eec84fc4ed187cf04b20a52 100644 (file)
@@ -34,29 +34,9 @@ G_BEGIN_DECLS
 GDK_AVAILABLE_IN_ALL
 G_DECLARE_INTERFACE (GtkNative, gtk_native, GTK, NATIVE, GtkWidget)
 
-/**
- * GtkNativeIface:
- *
- * The list of functions that must be implemented for the #GtkNative interface.
- */
-struct _GtkNativeInterface
-{
-  /*< private >*/
-  GTypeInterface g_iface;
-
-  /*< public >*/
-  GdkSurface *  (* get_surface)           (GtkNative    *self);
-  GskRenderer * (* get_renderer)          (GtkNative    *self);
-
-  void          (* get_surface_transform) (GtkNative    *self,
-                                           double       *x,
-                                           double       *y);
-
-  void          (* check_resize)          (GtkNative    *self);
-};
 
 GDK_AVAILABLE_IN_ALL
-GtkWidget * gtk_native_get_for_surface (GdkSurface *surface);
+GtkNative * gtk_native_get_for_surface (GdkSurface *surface);
 
 GDK_AVAILABLE_IN_ALL
 void        gtk_native_check_resize    (GtkNative *self);
diff --git a/gtk/gtknativeprivate.h b/gtk/gtknativeprivate.h
new file mode 100644 (file)
index 0000000..6b60336
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef __GTK_NATIVE_PRIVATE_H__
+#define __GTK_NATIVE_PRIVATE_H__
+
+#include "gtknative.h"
+
+G_BEGIN_DECLS
+
+/**
+ * GtkNativeIface:
+ *
+ * The list of functions that must be implemented for the #GtkNative interface.
+ */
+struct _GtkNativeInterface
+{
+  /*< private >*/
+  GTypeInterface g_iface;
+
+  /*< public >*/
+  GdkSurface *  (* get_surface)           (GtkNative    *self);
+  GskRenderer * (* get_renderer)          (GtkNative    *self);
+
+  void          (* get_surface_transform) (GtkNative    *self,
+                                           double       *x,
+                                           double       *y);
+
+  void          (* check_resize)          (GtkNative    *self);
+};
+
+G_END_DECLS
+
+#endif /* __GTK_NATIVE_PRIVATE_H__ */
index 72a5451647b571804cca34e456f00ee56bd6807e..5130d68ede392ac41395bec7acbe9915b8c11a55 100644 (file)
 #include "gtkbuildable.h"
 #include "gtktooltipprivate.h"
 #include "gtkcssboxesimplprivate.h"
-#include "gtknative.h"
+#include "gtknativeprivate.h"
 
 #include "gtkrender.h"
 #include "gtkstylecontextprivate.h"
index 9cdf94a75a22ba07264af350ac88c0739afe13d7..1cbd2b04d0e185f8202a619206e1ea08b211caef 100644 (file)
@@ -28,6 +28,7 @@
 #include "gtkcssboxesimplprivate.h"
 #include "gtkcssnumbervalueprivate.h"
 #include "gtkstylecontextprivate.h"
+#include "gtknativeprivate.h"
 #include "gtkintl.h"
 
 #include <gtk/gtk.h>
index e3011b4d6aba77468df1703950ecf12e7adbb989..ce17e8d5afc6be0a831e64f86cfe92fd69ba4fdb 100644 (file)
@@ -416,7 +416,7 @@ _gtk_widget_find_at_coords (GdkSurface *surface,
 
   g_return_val_if_fail (GDK_IS_SURFACE (surface), NULL);
 
-  event_widget = gtk_native_get_for_surface (surface);
+  event_widget = GTK_WIDGET (gtk_native_get_for_surface (surface));
 
   if (!event_widget)
     return NULL;
@@ -490,7 +490,7 @@ gtk_tooltip_set_surface (GtkTooltip *tooltip,
   GtkWidget *native;
 
   if (surface)
-    native = gtk_native_get_for_surface (surface);
+    native = GTK_WIDGET (gtk_native_get_for_surface (surface));
   else
     native = NULL;
 
index 877738117c364127725b4c016538dc32880609b9..e4fee76ae1ca7640f9e2d66a2810469cee3200f8 100644 (file)
@@ -37,7 +37,7 @@
 #include "gtksizerequest.h"
 #include "gtkwindowprivate.h"
 #include "gtkwidgetprivate.h"
-#include "gtknative.h"
+#include "gtknativeprivate.h"
 #include "gtkcssboxesimplprivate.h"
 
 struct _GtkTooltipWindow
index 031a280b194e56693bb70d28b16b5859f7df1427..fddca6ed444f8e06d3276e35692c38e27f74681d 100644 (file)
@@ -51,7 +51,7 @@
 #include "gtkpointerfocusprivate.h"
 #include "gtkprivate.h"
 #include "gtkroot.h"
-#include "gtknative.h"
+#include "gtknativeprivate.h"
 #include "gtksettings.h"
 #include "gtkshortcut.h"
 #include "gtkshortcutcontroller.h"
index ed5c2d30997c955948749f9e427cd93afb117c6f..e4006c36c33ed3ce64ba96b60be66bb388d2fe8b 100644 (file)
@@ -46,7 +46,7 @@ find_widget_at_pointer (GdkDevice *device)
   pointer_surface = gdk_device_get_surface_at_position (device, NULL, NULL);
 
   if (pointer_surface)
-    widget = gtk_native_get_for_surface (pointer_surface);
+    widget = GTK_WIDGET (gtk_native_get_for_surface (pointer_surface));
 
   if (widget)
     {